Java 命令行运行java程序,出现“找不到或无法加载主类 ”的解决办法 | 您所在的位置:网站首页 › java 运行jar 找不到或无法加载主类 › Java 命令行运行java程序,出现“找不到或无法加载主类 ”的解决办法 |
如果要在cmd命令行中,使用java运行java程序,可能会出现如下问题:
那么,在出现这样的问题时,该如何解决呢?解决办法如下: 1.由于是在运行阶段出现的问题,那么可能是环境变量配置不当的问题,即可能是classpath路径配置错误,而导致.class文件无法加载。那么此时你可以检查是否配置好classpath路径,一般来说classpath路径配置如下: .;%java_home%\lib;%java_home%\lib\tools.jar; (注意前面的 . 以及 ; 缺一不可) 其中.表示当前路径,;表示分隔符。 2.如果你试过了很多次,classpath也配置对了,依旧出现这个错误,注意你使用的测试代码,是否在某一个包名的下面; 比如说如下测试代码: package HelloWorld; public class TestPlusPlus { public static void main(String args[]) { int a = 2; int b = a ++ + ++ a; System.out.printf("a的值为: %d\nb的值为: %d\n",a,b); } }在文件所在的当前目录下,运行javac TestPlusPlus.java编译成功,生成TestPlusPlus.class文件,这个时 候,你用javaTestPlusPlus想运行程序,总会出现”找不到或无法加载主类“的错误。这个时候要注意, 之所以找不到,是因为TestPlusPlus在HelloWorld包名的下面。 解决办法: 1.去掉 ”package HelloWorld;“ 重新用javac 编译TestPlusPlus.java,再运行javaTestPlusPlus就可以了。 2.新建一个包名一样的文件夹,在本例中,为建立一个HelloWorld的文件夹,把TestPlusPlus.java文件移到该目录下。 然后在HelloWorld文件夹的平级下,打开DOS命令窗口,运行javacHelloWorld/TestPlusPlus.java编译程序, 运行javaHelloWorld/TestPlusPlus(或者javaHelloWorld.TestPlusPlus也可以),则可以运行含有包名的java程序。 注意:包名不要含有'.'(点),' '(空格)等特殊符号,这样的话命令行无法判断包名与java程序名的分割点在哪里, 从而还是找到或者无法加载主类。 原理说明: java程序运行class文件,对于有包名的类,java把包名当成文件夹处理."包名+类名"相当于"文件夹目录+类名"来寻找类。
|
今日新闻 |
推荐新闻 |
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 |